package jvm;

/**
 * @author jiangwz
 * @create 2019/9/4.
 */
public class PutInEden {

    //-XX:+PrintGCDetails -Xmx20M -Xms20M

    /**
     *  -XX:+PrintGCDetails   打印GC详情
     *  -Xmx20M 堆内存的最大值
     *  -Xms20M 堆内存的初始化值
     *  -Xmn10M 堆年轻代的空间10M  eden区8M,Survior from,to区各1M
     *
     * @param args
     */
    public static void main(String[] args){
        printMem();

        //最大堆内存: 19MB
        //总堆内存: 19MB
        // 年轻代总共6M，用了大约2.5M
        // 年老代共13M，用了大概2.5M
        // 元空间用了3M
        byte[] b1,b2,b3,b4;//定义变量
        b1=new byte[1024*1024];//分配 1MB 堆空间，考察堆空间的使用情况
        b2=new byte[1024*1024];
        b3=new byte[1024*1024];
        b4=new byte[1024*1024];
    }

    public static void  printMem(){
        Runtime runtime = Runtime.getRuntime();
        long max = runtime.maxMemory();
        long total = runtime.totalMemory();

        System.out.println("最大堆内存: " + mb(max) + "MB"); //默认电脑内存的1/4MB
        System.out.println("总堆内存: " + mb(total) + "MB"); // 默认电脑内存的1/64MB
    }

    public static int mb(long b){
        return (int)b/1024/1024;
    }
}
